// 引入Vue
import Vue from 'vue'
// 引入Vuex
import Vuex,{Store} from 'vuex'

// 使用Vuex插件
Vue.use(Vuex)

// 创建并导出一个Store的实例对象
export default new Store({
  // actions中放着可以响应组件中“动作”的方法 ——  例子：服务员
  actions:{
    // jia收到什么参数？—— context(工具箱),value(数据)
    // jia中的this是谁？ —— Store的实例对象 —— store
    jia(context,value){
      console.log('jia调用了',context,value)
      // 通过commit调用mutations中的JIA
      context.commit('JIA',value)
    },
    // jian收到什么参数？—— context(工具箱),value(数据)
    // jian中的this是谁？ —— Store的实例对象 —— store（要啥有啥）
    jian(context,value){
      console.log('jian调用了',context,value)
      // 通过commit调用mutations中的JIAN
      this.commit('JIAN',value)
      console.log('jiam服务员',this)
    }
  },
  // mutations中放着可以修改state中数据的方法 —— 例子：厨师
  mutations:{
    // JIA收到什么参数？—— state、value
    JIA(state,value){
      console.log('JIA调用了',state,value)
      // 修改state
      state.sum += value
    },
    // JIAN收到什么参数？—— state、value
    JIAN(state,value){
      console.log('JIAN调用了',state,value)
      // 修改state
      state.sum -= value
    }

  },
  // state是Vuex中专门用于保存数据的 —— 例子：原材料
  state:{
    sum:1
  }
})